﻿#ifndef DAABSTRACTNODEPLUGIN_H
#define DAABSTRACTNODEPLUGIN_H
#include <QtPlugin>
#include "DAWorkFlowGlobal.h"
#include "DAAbstractNodeFactory.h"
#include "DAAbstractPlugin.h"

/**
 * @brief 节点插件
 */
class DAWORKFLOW_API DAAbstractNodePlugin : public DAAbstractPlugin
{
public:
    DAAbstractNodePlugin();
    virtual ~DAAbstractNodePlugin();

    /**
     * @brief 创建一个节点工厂
     * @return
     */
    virtual DAAbstractNodeFactory *createNodeFactory() = 0;

    /**
     * @brief 删除一个节点工厂(谁创建谁删除原则)
     * @param p
     */
    virtual void destoryNodeFactory(DAAbstractNodeFactory *p) = 0;
};

#endif // FCABSTRACTNODEPLUGIN_H
